WCF
is the fundamental platform for developing service-oriented solutions
with .NET. This chapter introduces WCF and the unified programming
model it represents.
As shown in Figure 1,
WCF was one of the major building blocks of the .NET 3.0 framework,
which further introduced Windows Workflow Foundation (WF), Windows
Presentation Foundation (WPF), and the Windows Cardspace, which was
subsequently superseded by the Windows Identity Framework (WIF). WCF
was further extended and expanded with the subsequent releases of the
.NET 3.5 and .NET 4.0 frameworks.
WCF provides features
that directly support the application of service-orientation
principles. Various extensions and technologies within WCF were
designed to increase the potential of realizing SOA-friendly qualities
within solutions (such as loose coupling, autonomy,
statelessness, composability, discoverability, and reusability) with
the ultimate goal of propagating broad interoperability across the IT
enterprise.
The WSDL language has established itself
as a standard interface definition language (IDL) for WCF services.
Metadata can be documented for each service so that corresponding WSDL
definitions can be discovered using metadata exchange points.
The release of .NET 3.5 further
equipped WCF with a dispatcher system specifically for REST-based
services. This REST-aware dispatcher is able to route incoming messages
to the appropriate class through transport and protocol channels.
Transport channels move data to and from the network, while protocol
channels move data between application and transport channels.
As previously mentioned,
the WCF platform brings together legacy distributed technologies into a
single unified programming model (Figure 2).
WCF is discussed and explored
throughout this book. In this chapter we’ll cover some of the basics,
including its support for industry standard technologies and protocols
and aspects of its platform that relate to security, reliable
communications, transactions, and cross-platform interoperability.
Let’s begin with an explanation of the WCF communications framework.